其他
记录U3D逆向Assembly-CSharp-firstpass.dll解密
最近一直想逆向一个自己一直在玩的手游,
就把其中遇到的一些问题记录下来分享给大家吧!
使用到的工具:
1.APKIDE
2.NET Reflector
3.IDApro
4.IDEA ——用java写的解密算法,嘻嘻~
主要就是寻找解密算法比较麻烦。
怎么判定它是Unity游戏呢,看这个目录assets\bin\Data\Managed:
可以看出来是用unity3D开发的。
Assembly-CSharp-firstpass.dll游戏的代码就是在这里,是用C#开发的。
用Reflector软件打开,结果发现打不开,是加密的。
于是乎在apk压缩包找到lib\armeabi-v7a\libmono.so。
用IDA打开,定位到 mono_image_open_from_data_with_name 方法。
注意:这里只能32位的才能打开,64位进不去(至少我的是这样)。
找到这里的解密算法:
然后就开始写解密算法啦,这里我用JAVA写的。
(注:自己写两个函数,将文件成字节数组然后就可以进行解密了)
将Assembly-CSharp-firstpass.dll转换为字节文件:
进行解密,然后输出就搞定了。
然后我们把输出的文件导入Reflector:
好啦,解密成功!
到这里我们就可以进行下一步的源码分析了。敬请期待!
看雪ID:狂神说
https://bbs.pediy.com/thread-246481.htm
本文由看看雪论坛 狂神说 原创
转载请注明来自看雪社区
热门技术文章推荐